package com.atguigu.tingshu.common.config.thread;

import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;

import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

/**
 * @author atguigu-mqx
 * @ClassName ThreadPoolConfig
 * @description: TODO
 * @date 2024年04月13日
 * @version: 1.0
 */
@Component
public class ThreadPoolConfig {

    //  注入到spring 容器
    @Bean
    public ThreadPoolExecutor threadPoolExecutor(){
        return new ThreadPoolExecutor(
                8,// 核心线程数 cpu：n+1 io:2n n=核数
                16,// 最大线程数
                3,
                TimeUnit.SECONDS,
                new ArrayBlockingQueue<>(10)
                // 线程工厂
                // 拒绝策略
        );
    }

}
